package com.otitan.la.forest.industry.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 项目申报
 *
 * @author jiacs
 * @email xxx
 * @date 2020-10-16 16:41:30
 */
@Data
@TableName("\"BSS_PROJECT_APPLICATION\"")
@ApiModel("项目申报实体")
public class ProjectApplicationEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
    * 主键ID
    */
    @ApiModelProperty(value = "主键ID", required = false)
    @TableId("\"ID\"")
    private String id;

    /**
    * 申报时间
    */
    @ApiModelProperty(value = "申报时间", required = true)
    @NotNull(message = "申报时间不能为空")
    @TableField("\"APPLICATION_DATE\"")
    private Date applicationDate;

    /**
    * 申报单位
    */
    @ApiModelProperty(value = "申报单位", required = true)
    @NotEmpty(message = "申报单位不能为空")
    @Length(max = 80, message = "申报单位不能超过 80 个字符")
    @TableField("\"APPLICATION_UNIT\"")
    private String applicationUnit;

    /**
    * 项目名称
    */
    @ApiModelProperty(value = "项目名称", required = true)
    @NotEmpty(message = "项目名称不能为空")
    @Length(max = 80, message = "项目名称不能超过 80 个字符")
    @TableField("\"PROJECT_NAME\"")
    private String projectName;

    /**
    * 项目描述
    */
    @ApiModelProperty(value = "项目描述", required = false)
    @Length(max = 170, message = "项目描述不能超过 170 个字符")
    @TableField("\"PROJECT_DESC\"")
    private String projectDesc;

    /**
    * 申报资金
    */
    @ApiModelProperty(value = "申报资金", required = false)
    @NotNull(message = "申报资金不能为空")
    @TableField("\"DECLARATION_MONEY\"")
    private BigDecimal declarationMoney;

    /**
    * 项目地点
    */
    @ApiModelProperty(value = "项目地点", required = true)
    @NotEmpty(message = "项目地点不能为空")
    @Length(max = 40, message = "项目地点不能超过 40 个字符")
    @TableField("\"PROJECT_SITE\"")
    private String projectSite;

    /**
    * 经度
    */
    @ApiModelProperty(value = "经度", required = false)
    // @NotEmpty(message = "经度不能为空")
    // @Length(max = 22, message = "经度不能超过 22 个字符")
    @TableField("\"LON\"")
    private BigDecimal lon;

    /**
    * 纬度
    */
    @ApiModelProperty(value = "纬度", required = false)
    // @NotEmpty(message = "纬度不能为空")
    // @Length(max = 22, message = "纬度不能超过 22 个字符")
    @TableField("\"LAT\"")
    private BigDecimal lat;

    /**
    * 创建人
    */
    @ApiModelProperty(value = "创建人", required = false)
    @TableField(value = "\"CREATE_USER\"", fill = FieldFill.INSERT)
    private String createUser;

    /**
    * 创建时间
    */
    @ApiModelProperty(value = "创建时间", required = false)
    @TableField(value = "\"CREATE_DATE\"", fill = FieldFill.INSERT)
    private Date createDate;

    /**
    * 修改人
    */
    @ApiModelProperty(value = "修改人", required = false)
    @TableField(value = "\"UPDATE_USER\"", fill = FieldFill.INSERT_UPDATE)
    private String updateUser;

    /**
    * 修改时间
    */
    @ApiModelProperty(value = "修改时间", required = false)
    @TableField(value = "\"UPDATE_DATE\"", fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;


}
